﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Conexion;
using AccesoDatos.Objetos;

namespace AccesoDatos.Manejador
{
    public class Manejador_OrdenServicio
    {
        public DataTable RegresaBusquedaPrincipal(string strLlave, string strFiltro)
        {

            DataTable dtBusqueda = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Busqueda", strFiltro));
                lstParametros.Add(new clsParametros("@Filtro", strLlave));
                dtBusqueda = objConn.Datatable_standart("spConsultaCreacionRMA", lstParametros);
                return dtBusqueda;
            }
            catch (Exception ex)
            {
                return dtBusqueda;
            }
            
        }

        public DataTable RegresaDetalleFactura(string strFolId)
        {
            DataTable dtDetalleFact = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@FolId", strFolId));
                dtDetalleFact = objConn.Datatable_standart("sp_RMA_web_DetalleFactura", lstParametros);
                return dtDetalleFact;
            }
            catch (Exception ex)
            {
                return dtDetalleFact;
            }
        }
        public DataTable RegresaInfoProducto(string strProducto)
        {
            DataTable dtInfo = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@ProductoId", strProducto));
                dtInfo = objConn.Datatable_standart("sp_RMA_RegresaDatosRegistro", lstParametros);
                return dtInfo;
            }
            catch (Exception ex)
            {
                return dtInfo;
            }
        }
        public DataTable RegresaSeries(string strFact, string strProd)
        {
            DataTable dtSerie = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Factura", strFact));
                lstParametros.Add(new clsParametros("@Producto", strProd));
                dtSerie = objConn.Datatable_standart("sp_RMA_web_Series", lstParametros);
                return dtSerie;
            }
            catch (Exception ex)
            {
                return dtSerie;
            }
        }
        public DataTable RegresaDatosCliente(string strIdCliente)
        {
            DataTable dtCliente = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@IdCliente", strIdCliente));
                dtCliente = objConn.Datatable_standart("sp_RMA_CargaDatosCliente", lstParametros);
                return dtCliente;
            }
            catch (Exception ex)
            {
                return dtCliente;
            }
        }
        public int CreaOrdenServicio(clsCreaOrdenServicio objOrden)
        {
            int Folio = 0;
            List<clsParametros> lstParametros = new List<clsParametros>();
            
            try
            {
                clsConexion objConn = new clsConexion();
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Suc_ID", objOrden.Sucid));
                lstParametros.Add(new clsParametros("@Fecha_Alta", objOrden.FechaAlta.Replace("/","")));
                lstParametros.Add(new clsParametros("@Factura", objOrden.Factura));
                lstParametros.Add(new clsParametros("@Producto", objOrden.Producto));
                lstParametros.Add(new clsParametros("@SerieDetalle", objOrden.Serie));
                lstParametros.Add(new clsParametros("@Observacion", objOrden.Observacion));
                lstParametros.Add(new clsParametros("@Falla", objOrden.Falla));
                lstParametros.Add(new clsParametros("@Accesorios", objOrden.Accesorios));
                lstParametros.Add(new clsParametros("@DescripcionDetalle", objOrden.DescripcionDetalle));
                lstParametros.Add(new clsParametros("@Valor", objOrden.Valor.ToString()));
                lstParametros.Add(new clsParametros("@ReporteSerie", objOrden.ReporteSerie));
                if (objOrden.Condicion)
                {
                    lstParametros.Add(new clsParametros("@Condicion", "1"));
                }
                else
                {
                    lstParametros.Add(new clsParametros("@Condicion", "0"));
                
                }
                
                Folio = objConn.Procedure_standartReturn("sp_RMA_web_OrdenRegistro", lstParametros);

                    
            }
            catch (Exception ex)
            { 
            
            }
            


            return Folio;
        }
        public bool GuardaAnexos(string strFolio, byte[] Serie)
        {
            bool Guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@FolioRMA", strFolio));
                lstParametros.Add(new clsParametros("@dataSerie", Serie));
                Guarda = objConn.Procedure_standart("sp_RMA_AgregaAnexoSeries", lstParametros);
                return Guarda;
            }
            catch (Exception ex)
            {
                return Guarda;
            }
        }
        public bool GuardaAccesorios(List<clsAccesorios> lstAccesorios, string strFolio)
        {
            bool Guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstAccesorios.ForEach(delegate(clsAccesorios objAcc)
                {
                    lstParametros = new List<clsParametros>();
                    lstParametros.Add(new clsParametros("@FolioRMA", strFolio));
                    lstParametros.Add(new clsParametros("@Accesorio", objAcc.Accesorio));
                    Guarda = objConn.Procedure_standart("sp_RMA_AgregaAccesorios", lstParametros);
                    
                });
               
                return Guarda;
            }
            catch (Exception ex)
            {
                return Guarda;
            }
        }
        public bool GuardaMovimiento(string Folio, string Accion, string idUsuario, string Detalle, string status)
        {
            bool guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Folio", Folio));
                lstParametros.Add(new clsParametros("@Accion", Accion));
                lstParametros.Add(new clsParametros("@id_usuario", idUsuario));
                lstParametros.Add(new clsParametros("@Detalle", Detalle));
                lstParametros.Add(new clsParametros("@Status", status));
                guarda = objConn.Procedure_standart("sp_RMA_web_Movimientos", lstParametros);
                return guarda;
            }
            catch (Exception)
            {

            }

            return guarda;
        }


    }
}
